<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Reconfigurable computing</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Reconfigurable_computing"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Reconfigurable_computing rootpage-Reconfigurable_computing skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Reconfigurable computing</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<p class="mw-empty-elt">
</p>
<style data-mw-deduplicate="TemplateStyles:r1305433154">
/* start https://en.wikipedia.org/ */
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style>
<p><b>Reconfigurable computing</b> is a <a href="Computer_architecture" title="Computer architecture">computer architecture</a> combining some of the flexibility of software with the high performance of hardware by processing with flexible hardware platforms like <a href="FPGA" class="mw-redirect" title="FPGA">field-programmable gate arrays</a> (FPGAs). The principal difference when compared to using ordinary <a href="Microprocessor" title="Microprocessor">microprocessors</a> is the ability to add custom computational blocks using FPGAs. On the other hand, the main difference from custom hardware, i.e. <a href="Application-specific_integrated_circuit" title="Application-specific integrated circuit">application-specific integrated circuits</a> (ASICs) is the possibility to adapt the hardware during runtime by "loading" a new circuit on the reconfigurable fabric, thus providing new computational blocks without the need to <a href="Semiconductor_device_fabrication" title="Semiconductor device fabrication">manufacture</a> and add new <a href="Integrated_circuit" title="Integrated circuit">chips</a> to the existing system.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="History">History</h2></div>
<p>The concept of reconfigurable computing has existed since the 1960s, when <a href="Gerald_Estrin" title="Gerald Estrin">Gerald Estrin</a>'s paper proposed the concept of a computer made of a standard processor and an array of "reconfigurable" hardware.<sup id="cite_ref-Estrin2002_1-0" class="reference"><a href="#cite_note-Estrin2002-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> The main processor would control the behavior of the reconfigurable hardware. The latter would then be tailored to perform a specific task, such as <a href="Image_processing" class="mw-redirect" title="Image processing">image processing</a> or <a href="Pattern_matching" title="Pattern matching">pattern matching</a>, as quickly as a dedicated piece of hardware. Once the task was done, the hardware could be adjusted to do some other task. This resulted in a hybrid computer structure combining the flexibility of software with the speed of hardware.
</p><p>In the 1980s and 1990s there was a renaissance in this area of research with many proposed reconfigurable architectures developed in industry and academia,<sup id="cite_ref-Bobda2007_3-0" class="reference"><a href="#cite_note-Bobda2007-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> such as: Copacobana, Matrix, GARP,<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> Elixent, NGEN,<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> Polyp,<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> MereGen,<sup id="cite_ref-:1_7-0" class="reference"><a href="#cite_note-:1-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> PACT XPP, Silicon Hive, Montium, Pleiades, Morphosys, and PiCoGA.<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> Such designs were feasible due to the constant progress of silicon technology that let complex designs be implemented on one chip. Some of these massively parallel reconfigurable computers were built primarily for special subdomains such as molecular evolution, neural or image processing. The world's first commercial reconfigurable computer, the Algotronix CHS2X4, was completed in 1991. It was not a commercial success, but was promising enough that <a href="Xilinx" title="Xilinx">Xilinx</a> (the inventor of the <a href="FPGA" class="mw-redirect" title="FPGA">Field-Programmable Gate Array</a>, FPGA) bought the technology and hired the Algotronix staff.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> Later machines enabled first demonstrations of scientific principles, such as the spontaneous spatial self-organisation of genetic coding with MereGen.<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Theories">Theories</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Tredennick's_Classification">Tredennick's Classification</h3></div>
<table class="wikitable" align="right">
<caption><i>Table 1: Nick Tredennick's Paradigm Classification Scheme</i>
</caption>
<tbody><tr>
<td bgcolor="#BBBBFF" colspan="2"><b>Early Historic Computers:</b>
</td></tr>
<tr>
<td bgcolor="#BBBBFF">
</td>
<th>Programming Source
</th></tr>
<tr>
<td>Resources fixed
</td>
<td>none
</td></tr>
<tr>
<td>Algorithms fixed
</td>
<td>none
</td></tr>
<tr>
<td bgcolor="#ffebad" colspan="2"><b>von Neumann Computer:</b>
</td></tr>
<tr>
<td bgcolor="#ffebad">
</td>
<th>Programming Source
</th></tr>
<tr>
<td>Resources fixed
</td>
<td>none
</td></tr>
<tr>
<td>Algorithms variable
</td>
<td>Software (instruction streams)
</td></tr>
<tr>
<td bgcolor="#ffbbbb" colspan="2"><b>Reconfigurable Computing Systems:</b>
</td></tr>
<tr>
<td bgcolor="#ffbbbb">
</td>
<th>Programming Source
</th></tr>
<tr>
<td>Resources variable
</td>
<td>Configware (configuration)
</td></tr>
<tr>
<td>Algorithms variable
</td>
<td>Flowware (data streams)
</td></tr></tbody></table>
<p>The fundamental model of the reconfigurable computing machine paradigm, the data-stream-based <a href="Anti_machine" class="mw-redirect" title="Anti machine">anti machine</a> is well illustrated by the differences to other machine paradigms that were introduced earlier, as shown by <a href="Nick_Tredennick" title="Nick Tredennick">Nick Tredennick</a>'s following classification scheme of computing paradigms (see "Table 1: Nick Tredennick's Paradigm Classification Scheme").<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Hartenstein's_Xputer">Hartenstein's Xputer</h3></div>
<style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="Xputer" title="Xputer">Xputer</a></div>
<p>Computer scientist Reiner Hartenstein describes reconfigurable computing in terms of an <i><a href="Anti-machine" class="mw-redirect" title="Anti-machine">anti-machine</a></i> that, according to him, represents a fundamental paradigm shift away from the more conventional <a href="Von_Neumann_architecture" title="Von Neumann architecture">von Neumann machine</a>.<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> Hartenstein calls it Reconfigurable Computing Paradox, that software-to-configware (software-to-<a href="FPGA" class="mw-redirect" title="FPGA">FPGA</a>) migration results in reported speed-up factors of up to more than four orders of magnitude, as well as a reduction in electricity consumption by up to almost four orders of magnitude—although the technological parameters of FPGAs are behind the <a href="Moore's_law" title="Moore's law">Gordon Moore curve</a> by about four orders of magnitude, and the clock frequency is substantially lower than that of microprocessors. This paradox is partly explained by the <a href="Von_Neumann_bottleneck" class="mw-redirect" title="Von Neumann bottleneck">Von Neumann syndrome</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="High-performance_computing">High-performance computing</h2></div>
<p><b>High-Performance Reconfigurable Computing</b> (HPRC) is a <a href="Computer_architecture" title="Computer architecture">computer architecture</a> combining reconfigurable computing-based accelerators like <a href="Field-programmable_gate_array" title="Field-programmable gate array">field-programmable gate array</a> with CPUs or <a href="Multi-core_processor" title="Multi-core processor">multi-core</a> <a href="Microprocessor" title="Microprocessor">processors</a>.
</p><p>The increase of logic in an FPGA has enabled larger and more complex algorithms to be programmed into the FPGA. The attachment of such an FPGA to a modern CPU over a high speed bus, like <a href="PCI_Express" title="PCI Express">PCI express</a>, has enabled the configurable logic to act more like a <a href="Coprocessor" title="Coprocessor">coprocessor</a> rather than a <a href="Peripheral" title="Peripheral">peripheral</a>. This has brought reconfigurable computing into the <a href="High-performance_computing" title="High-performance computing">high-performance computing</a> sphere.
</p><p>Furthermore, by replicating an algorithm on an FPGA or the use of a multiplicity of FPGAs has enabled reconfigurable <a href="SIMD" class="mw-redirect" title="SIMD">SIMD</a> systems to be produced where several computational devices can concurrently operate on different data, which is highly <a href="Parallel_computing" title="Parallel computing">parallel computing</a>.
</p><p>This heterogeneous systems technique is used in computing research and especially in <a href="Supercomputing" class="mw-redirect" title="Supercomputing">supercomputing</a>.<sup id="cite_ref-Voros2009_13-0" class="reference"><a href="#cite_note-Voros2009-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup>
A 2008 paper reported speed-up factors of more than 4 orders of magnitude and energy saving factors by up to almost 4 orders of magnitude.<sup id="cite_ref-Tarek2008_14-0" class="reference"><a href="#cite_note-Tarek2008-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup>
Some supercomputer firms offer heterogeneous processing blocks including FPGAs as accelerators.
One research area is the twin-paradigm programming tool flow productivity obtained for such heterogeneous systems.<sup id="cite_ref-Esam2009_15-0" class="reference"><a href="#cite_note-Esam2009-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup>
</p><p>The US <a href="National_Science_Foundation" title="National Science Foundation">National Science Foundation</a> has a center for high-performance reconfigurable computing (CHREC).<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup>
In April 2011 the fourth Many-core and Reconfigurable Supercomputing Conference was held in Europe.<sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup>
</p><p>Commercial high-performance reconfigurable computing systems are beginning to emerge with the announcement of <a href="IBM" title="IBM">IBM</a> integrating FPGAs with its <a href="IBM_Power_microprocessors" title="IBM Power microprocessors">IBM Power microprocessors</a>.<sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Partial_re-configuration">Partial re-configuration</h2></div>
<p><b>Partial re-configuration</b> is the process of changing a portion of reconfigurable hardware <a href="Circuitry" class="mw-redirect" title="Circuitry">circuitry</a> while the other portion keeps its former configuration. <a href="Field_programmable_gate_array" class="mw-redirect" title="Field programmable gate array">Field programmable gate arrays</a> are often used as a support to partial reconfiguration.
</p><p><a href="Electronic_hardware" title="Electronic hardware">Electronic hardware</a>, like <a href="Software" title="Software">software</a>, can be designed modularly, by creating subcomponents and then higher-level components to instantiate them. In many cases it is useful to be able to swap out one or several of these subcomponents while the FPGA is still operating.
</p><p>Normally, reconfiguring an FPGA requires it to be held in reset while an external controller reloads a design onto it. Partial reconfiguration allows for critical parts of the design to continue operating while a controller either on the FPGA or off of it loads a partial design into a reconfigurable module. Partial reconfiguration also can be used to save space for multiple designs by only storing the partial designs that change between designs.<sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup>
</p><p>A common example for when partial reconfiguration would be useful is the case of a communication device. If the device is controlling multiple connections, some of which require <a href="Encryption" title="Encryption">encryption</a>, it would be useful to be able to load different encryption cores without bringing the whole controller down.
</p><p>Partial reconfiguration is not supported on all FPGAs. A special software flow with emphasis on modular design is required. Typically the design modules are built along well defined boundaries inside the FPGA that require the design to be specially mapped to the internal hardware.
</p><p>From the functionality of the design, partial reconfiguration can be divided into two groups:<sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup>
</p>
<ul><li><i>dynamic partial reconfiguration</i>, also known as an active partial reconfiguration - permits to change the part of the device while the rest of an FPGA is still running;</li>
<li><i>static partial reconfiguration</i> - the device is not active during the reconfiguration process. While the partial data is sent into the FPGA, the rest of the device is stopped (in the shutdown mode) and brought up after the configuration is completed.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Current_systems">Current systems</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Computer_emulation">Computer emulation</h3></div>
<p>With the advent of affordable FPGA boards, students' and hobbyists' projects seek to recreate <a href="Vintage_computer" title="Vintage computer">vintage computers</a> or implement more novel architectures.<sup id="cite_ref-apple_21-0" class="reference"><a href="#cite_note-apple-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-risc_22-0" class="reference"><a href="#cite_note-risc-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-soc_23-0" class="reference"><a href="#cite_note-soc-23"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup> Such projects are built with reconfigurable hardware (FPGAs), and some devices support emulation of multiple vintage computers using a single reconfigurable hardware (<a href="C-One" title="C-One">C-One</a>).
</p>
<div class="mw-heading mw-heading3"><h3 id="COPACOBANA">COPACOBANA</h3></div>
<p>A fully FPGA-based computer is the COPACOBANA, the Cost Optimized Codebreaker and Analyzer and its successor RIVYERA. A spin-off company <a href="SciEngines_GmbH" title="SciEngines GmbH">SciEngines GmbH</a> of the COPACOBANA-Project of the Universities of Bochum and Kiel in Germany continues the development of fully FPGA-based computers.
</p>
<div class="mw-heading mw-heading3"><h3 id="Mitrionics">Mitrionics</h3></div>
<p><a href="Mitrionics" title="Mitrionics">Mitrionics</a> has developed a SDK that enables software written using a <a href="Single_assignment" class="mw-redirect" title="Single assignment">single assignment</a> language to be compiled and executed on FPGA-based computers. The Mitrion-C software language and Mitrion processor enable software developers to write and execute applications on FPGA-based computers in the same manner as with other computing technologies, such as graphical processing units ("GPUs"), cell-based processors, parallel processing units ("PPUs"), multi-core CPUs, and traditional single-core CPU clusters. (out of business)
</p>
<div class="mw-heading mw-heading3"><h3 id="National_Instruments">National Instruments</h3></div>
<p><a href="National_Instruments" title="National Instruments">National Instruments</a> have developed a hybrid embedded computing system called <a href="CompactRIO" title="CompactRIO">CompactRIO</a>. It consists of reconfigurable chassis housing the user-programmable FPGA, hot swappable I/O modules, real-time controller for deterministic communication and processing, and graphical LabVIEW software for rapid RT and FPGA programming.
</p>
<div class="mw-heading mw-heading3"><h3 id="Xilinx">Xilinx</h3></div>
<p><a href="Xilinx" title="Xilinx">Xilinx</a> has developed two styles of partial reconfiguration of FPGA devices: <i>module-based</i> and <i>difference-based</i>. <i>Module-based partial reconfiguration</i> permits to reconfigure distinct modular parts of the design, while <i>difference-based partial reconfiguration</i> can be used when a small change is made to a design.
</p>
<div class="mw-heading mw-heading3"><h3 id="Intel">Intel</h3></div>
<p><a href="Intel" title="Intel">Intel</a><sup id="cite_ref-intel_altera_24-0" class="reference"><a href="#cite_note-intel_altera-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup> supports partial reconfiguration of their FPGA devices on 28 nm devices such as Stratix V,<sup id="cite_ref-stratixv_pr_25-0" class="reference"><a href="#cite_note-stratixv_pr-25"><span class="cite-bracket">[</span>25<span class="cite-bracket">]</span></a></sup> and on the 20 nm Arria 10 devices.<sup id="cite_ref-arria10_pr_26-0" class="reference"><a href="#cite_note-arria10_pr-26"><span class="cite-bracket">[</span>26<span class="cite-bracket">]</span></a></sup> The Intel FPGA partial reconfiguration flow for Arria 10 is based on the hierarchical design methodology in the Quartus Prime Pro software where users create physical partitions of the FPGA that can be reconfigured<sup id="cite_ref-arria10_pr_docs_27-0" class="reference"><a href="#cite_note-arria10_pr_docs-27"><span class="cite-bracket">[</span>27<span class="cite-bracket">]</span></a></sup> at runtime while the remainder of the design continues to operate. The Quartus Prime Pro software also support hierarchical partial reconfiguration and simulation of partial reconfiguration.
</p>
<div class="mw-heading mw-heading2"><h2 id="Classification_of_systems">Classification of systems</h2></div>
<p>As an emerging field, classifications of reconfigurable architectures are still being developed and refined as new architectures are developed; no unifying taxonomy has been suggested to date. However, several recurring parameters can be used to classify these systems.
</p>
<div class="mw-heading mw-heading3"><h3 id="Granularity">Granularity</h3></div>
<p>The granularity of the reconfigurable logic is defined as the size of the smallest functional unit (configurable logic block, CLB) that is addressed by the mapping tools. High granularity, which can also be known as fine-grained, often implies a greater flexibility when implementing algorithms into the hardware. However, there is a penalty associated with this in terms of increased power, area and delay due to greater quantity of routing required per computation. Fine-grained architectures work at the bit-level manipulation level; whilst coarse grained processing elements (reconfigurable datapath unit, rDPU) are better optimised for standard data path applications. One of the drawbacks of coarse grained architectures are that they tend to lose some of their utilisation and performance if they need to perform smaller computations than their granularity provides, for example for a one bit add on a four bit wide functional unit would waste three bits. This problem can be solved by having a coarse grain array (<a href="Reconfigurable_datapath_array" class="mw-redirect" title="Reconfigurable datapath array">reconfigurable datapath array</a>, rDPA) and a <a href="FPGA" class="mw-redirect" title="FPGA">FPGA</a> on the same chip.
</p><p>Coarse-grained architectures (<a href="RDPA" class="mw-redirect" title="RDPA">rDPA</a>) are intended for the implementation for algorithms needing word-width data paths (rDPU). As their functional blocks are optimized for large computations and typically comprise word wide <a href="Arithmetic_logic_unit" title="Arithmetic logic unit">arithmetic logic units</a> (ALU), they will perform these computations more quickly and with more power efficiency than a set of interconnected smaller functional units; this is due to the connecting wires being shorter, resulting in less wire capacitance and hence faster and lower power designs. A potential undesirable consequence of having larger computational blocks is that when the size of operands may not match the algorithm an inefficient utilisation of resources can result. Often the type of applications to be run are known in advance allowing the logic, memory and routing resources to be tailored to enhance the performance of the device whilst still providing a certain level of flexibility for future adaptation. Examples of this are domain specific arrays aimed at gaining better performance in terms of power, area, throughput than their more generic finer grained <a href="FPGA" class="mw-redirect" title="FPGA">FPGA</a> cousins by reducing their flexibility.
</p>
<div class="mw-heading mw-heading3"><h3 id="Rate_of_reconfiguration">Rate of reconfiguration</h3></div>
<p>Configuration of these reconfigurable systems can happen at deployment time, between execution phases or during execution. In a typical reconfigurable system, a bit stream is used to program the device at deployment time. Fine grained systems by their own nature require greater configuration time than more coarse-grained architectures due to more elements needing to be addressed and programmed. Therefore, more coarse-grained architectures gain from potential lower energy requirements, as less information is transferred and utilised. Intuitively, the slower the rate of reconfiguration the smaller the power consumption as the associated energy cost of reconfiguration are amortised over a longer period of time. Partial re-configuration aims to allow part of the device to be reprogrammed while another part is still performing active computation. Partial re-configuration allows smaller reconfigurable bit streams thus not wasting energy on transmitting redundant information in the bit stream. Compression of the bit stream is possible but careful analysis is to be carried out to ensure that the energy saved by using smaller bit streams is not outweighed by the computation needed to decompress the data.
</p>
<div class="mw-heading mw-heading3"><h3 id="Host_coupling">Host coupling</h3></div>
<p>Often the reconfigurable array is used as a processing accelerator attached to a host processor. The level of coupling determines the type of data transfers, latency, power, throughput and overheads involved when utilising the reconfigurable logic. Some of the most intuitive designs use a peripheral bus to provide a coprocessor like arrangement for the reconfigurable array. However, there have also been implementations where the reconfigurable fabric is much closer to the processor, some are even implemented into the data path, utilising the processor registers. The job of the host processor is to perform the control functions, configure the logic, schedule data and to provide external interfacing.
</p>
<div class="mw-heading mw-heading3"><h3 id="Routing/interconnects">Routing/interconnects</h3></div>
<p>The flexibility in reconfigurable devices mainly comes from their routing interconnect. One style of interconnect made popular by <a href="FPGA" class="mw-redirect" title="FPGA">FPGAs</a> vendors, Xilinx and Altera are the island style layout, where blocks are arranged in an array with vertical and horizontal routing. A layout with inadequate routing may suffer from poor flexibility and resource utilisation, therefore providing limited performance. If too much interconnect is provided this requires more transistors than necessary and thus more silicon area, longer wires and more power consumption.
</p>
<div class="mw-heading mw-heading2"><h2 id="Challenges_for_operating_systems">Challenges for operating systems</h2></div>
<p>One of the key challenges for reconfigurable computing is to enable higher design productivity and provide an easier way to use reconfigurable computing systems for users that are unfamiliar with the underlying concepts. One way of doing this is to provide standardization and abstraction, usually supported and enforced by an operating system.<sup id="cite_ref-:0_28-0" class="reference"><a href="#cite_note-:0-28"><span class="cite-bracket">[</span>28<span class="cite-bracket">]</span></a></sup>
</p><p>One of the major tasks of an operating system is to hide the hardware and present programs (and their programmers) with nice, clean, elegant, and consistent abstractions to work with instead. In other words, the two main tasks of an operating system are abstraction and <a href="Resource_management_(computing)" title="Resource management (computing)">resource management</a>.<sup id="cite_ref-:0_28-1" class="reference"><a href="#cite_note-:0-28"><span class="cite-bracket">[</span>28<span class="cite-bracket">]</span></a></sup>
</p><p>Abstraction is a powerful mechanism to handle complex and different (hardware) tasks in a well-defined and common manner. One of the most elementary OS abstractions is a process. A process is a running application that has the perception (provided by the OS) that it is running on its own on the underlying virtual hardware. This can be relaxed by the concept of threads, allowing different tasks to run concurrently on this virtual hardware to exploit task level parallelism. To allow different processes and threads to coordinate their work, communication and synchronization methods have to be provided by the OS.<sup id="cite_ref-:0_28-2" class="reference"><a href="#cite_note-:0-28"><span class="cite-bracket">[</span>28<span class="cite-bracket">]</span></a></sup>
</p><p>In addition to abstraction, resource management of the underlying hardware components is necessary because the virtual computers provided to the processes and threads by the operating system need to share available physical resources (processors, memory, and devices) spatially and temporarily.<sup id="cite_ref-:0_28-3" class="reference"><a href="#cite_note-:0-28"><span class="cite-bracket">[</span>28<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1184024115">
/* start https://en.wikipedia.org/ */
.mw-parser-output .div-col{margin-top:0.3em;column-width:30em}.mw-parser-output .div-col-small{font-size:90%}.mw-parser-output .div-col-rules{column-rule:1px solid #aaa}.mw-parser-output .div-col dl,.mw-parser-output .div-col ol,.mw-parser-output .div-col ul{margin-top:0}.mw-parser-output .div-col li,.mw-parser-output .div-col dd{page-break-inside:avoid;break-inside:avoid-column}
/* end https://en.wikipedia.org/ */
</style><div class="div-col div-col-small">
<ul><li><a href="Computing_with_Memory" class="mw-redirect" title="Computing with Memory">Computing with Memory</a></li>
<li><a href="Glossary_of_reconfigurable_computing" title="Glossary of reconfigurable computing">Glossary of reconfigurable computing</a></li>
<li><a href="ILAND_project" title="ILAND project">iLAND project</a></li>
<li><a href="M-Labs" title="M-Labs">M-Labs</a></li>
<li><a href="1chipMSX" title="1chipMSX">One chip MSX</a></li>
<li><a href="PipeRench" title="PipeRench">PipeRench</a></li>
<li><a href="PSoC" class="mw-redirect" title="PSoC">PSoC</a></li>
<li><a href="Sprinter_(computer)" title="Sprinter (computer)">Sprinter</a></li></ul>
</div>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist reflist-columns references-column-width" style="column-width: 30em;">
<ol class="references">
<li id="cite_note-Estrin2002-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-Estrin2002_1-0">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFEstrin2002" class="citation journal cs1">Estrin, G (2002). "Reconfigurable computer origins: the UCLA fixed-plus-variable (F+V) structure computer". <i>IEEE Ann. Hist. Comput</i>. <b>24</b> (4): <span class="nowrap">3–</span>9. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FMAHC.2002.1114865">10.1109/MAHC.2002.1114865</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:7923912">7923912</a>.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text">
Estrin, G., "Organization of Computer Systems—The Fixed Plus Variable Structure Computer",
<i>Proc. Western Joint Computer Conf.</i>, Western Joint Computer Conference, New York, 1960, pp. 33–40.</span>
</li>
<li id="cite_note-Bobda2007-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-Bobda2007_3-0">^</a></b></span> <span class="reference-text">C. Bobda: Introduction to Reconfigurable Computing: Architectures; Springer, 2007</span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text">Hauser, John R. and Wawrzynek, John,
"Garp: A MIPS Processor with a Reconfigurable Coprocessor",
<i>Proceedings of the IEEE Symposium on Field-Programmable Custom Computing Machines</i>
(FCCM '97, April 16–18, 1997), pp. 24–33.</span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite id="CITEREFMcCaskillChorongiewskiMekelburgTangen1994" class="citation journal cs1">McCaskill, John S.; Chorongiewski, Harald; Mekelburg, Karsten; Tangen, Uwe; Gemm, Udo (1994-09-01). "NGEN — Configurable computer hardware to simulate long-time self-organization of biopolymers". <i>Berichte der Bunsengesellschaft für Physikalische Chemie</i>. <b>98</b> (9): 1114. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1002%2Fbbpc.19940980906">10.1002/bbpc.19940980906</a>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/0005-9021">0005-9021</a>.</cite></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><cite class="citation book cs1"><i>Evolvable systems : from biology to hardware : second International Conference, ICES 98, Lausanne, Switzerland, September 23-25, 1998: proceedings</i>. Sipper, Moshe., Mange, Daniel, 1940-, Pérez-Uribe, Andrés., International Conference on Evolvable Systems (2nd : 1998 : Lausanne, Switzerland). Berlin: Springer. 1998. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-3-540-64954-0</bdi>. <a href="OCLC_(identifier)" class="mw-redirect" title="OCLC (identifier)">OCLC</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/oclc/39655211">39655211</a>.</cite><span class="cs1-maint citation-comment"><code class="cs1-code">{{cite book}}</code>: CS1 maint: others (link)</span></span>
</li>
<li id="cite_note-:1-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-:1_7-0">^</a></b></span> <span class="reference-text"><cite class="citation book cs1"><i>Coupling of biological and electronic systems: proceedings of the 2nd Caesarium, Bonn, November 1-3, 2000</i>. Hoffmann, K.-H. (Karl-Heinz). Berlin: Springer. 2002. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-3-540-43699-7</bdi>. <a href="OCLC_(identifier)" class="mw-redirect" title="OCLC (identifier)">OCLC</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/oclc/49750250">49750250</a>.</cite><span class="cs1-maint citation-comment"><code class="cs1-code">{{cite book}}</code>: CS1 maint: others (link)</span></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text">Campi, F.; Toma, M.; Lodi, A.; Cappelli, A.; Canegallo, R.; Guerrieri, R., "A VLIW processor with reconfigurable instruction set for embedded applications", Solid-State Circuits Conference, 2003. Digest of Technical Papers. ISSCC. 2003 IEEE International, vol., no., pp. 250–491 vol. 1, 2003</span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.algotronix.com/people/tom/album.html">Algotronix History</a></span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><cite id="CITEREFFüchslinMcCaskill2001" class="citation journal cs1">Füchslin, Rudolf M.; McCaskill, John S. (2001-07-31). <a rel="nofollow" class="external text" href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC55395">"Evolutionary self-organization of cell-free genetic coding"</a>. <i>Proceedings of the National Academy of Sciences</i>. <b>98</b> (16): <span class="nowrap">9185–</span>9190. <a href="Bibcode_(identifier)" class="mw-redirect" title="Bibcode (identifier)">Bibcode</a>:<a rel="nofollow" class="external text" href="https://ui.adsabs.harvard.edu/abs/2001PNAS...98.9185F">2001PNAS...98.9185F</a>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1073%2Fpnas.151253198">10.1073/pnas.151253198</a></span>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/0027-8424">0027-8424</a>. <a href="PMC_(identifier)" class="mw-redirect" title="PMC (identifier)">PMC</a> <span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC55395">55395</a></span>. <a href="PMID_(identifier)" class="mw-redirect" title="PMID (identifier)">PMID</a> <a rel="nofollow" class="external text" href="https://pubmed.ncbi.nlm.nih.gov/11470896">11470896</a>.</cite></span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text">N. Tredennick: The Case for Reconfigurable Computing; Microprocessor Report, Vol. 10 No. 10, 5 August 1996, pp 25–27.</span>
</li>
<li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text">Hartenstein, R. 2001. A decade of reconfigurable computing: a visionary retrospective. In <i>Proceedings of the Conference on Design, Automation and Test in Europe (DATE 2001)</i> (Munich, Germany). W. Nebel and A. Jerraya, Eds. Design, Automation, and Test in Europe. IEEE Press, Piscataway, NJ, 642–649.</span>
</li>
<li id="cite_note-Voros2009-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-Voros2009_13-0">^</a></b></span> <span class="reference-text">N. Voros, R. Nikolaos, A. Rosti, M. Hübner (editors): Dynamic System Reconfiguration in Heterogeneous Platforms - The MORPHEUS Approach; Springer Verlag, 2009</span>
</li>
<li id="cite_note-Tarek2008-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-Tarek2008_14-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFTarek_El-Ghazawi2008" class="citation journal cs1">Tarek El-Ghazawi; et al. (February 2008). "The promise of high-performance reconfigurable computing". <i>IEEE Computer</i>. <b>41</b> (2): <span class="nowrap">69–</span>76. <a href="CiteSeerX_(identifier)" class="mw-redirect" title="CiteSeerX (identifier)">CiteSeerX</a> <span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.208.4031">10.1.1.208.4031</a></span>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FMC.2008.65">10.1109/MC.2008.65</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:14469864">14469864</a>.</cite></span>
</li>
<li id="cite_note-Esam2009-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-Esam2009_15-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFEsam_El-ArabyIvan_GonzalezTarek_El-Ghazawi2009" class="citation journal cs1">Esam El-Araby; Ivan Gonzalez; Tarek El-Ghazawi (January 2009). "Exploiting Partial Runtime Reconfiguration for High-Performance Reconfigurable Computing". <i>ACM Transactions on Reconfigurable Technology and Systems</i>. <b>1</b> (4): <span class="nowrap">1–</span>23. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F1462586.1462590">10.1145/1462586.1462590</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:10270587">10270587</a>.</cite></span>
</li>
<li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.chrec.org/">"NSF center for High-performance Reconfigurable Computing"</a>. <i>official web site</i><span class="reference-accessdate">. Retrieved <span class="nowrap">August 19,</span> 2011</span>.</cite></span>
</li>
<li id="cite_note-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-17">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20101012042408/http://www.mrsc2011.eu/">"Many-Core and Reconfigurable Supercomputing Conference"</a>. <i>official web site</i>. 2011. Archived from <a rel="nofollow" class="external text" href="http://www.mrsc2011.eu/">the original</a> on October 12, 2010<span class="reference-accessdate">. Retrieved <span class="nowrap">August 19,</span> 2011</span>.</cite></span>
</li>
<li id="cite_note-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-18">^</a></b></span> <span class="reference-text">
<cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.hpcwire.com/off-the-wire/altera-ibm-unveil-fpga-accelerated-power-systems/">"Altera and IBM Unveil FPGA-Accelerated POWER Systems"</a>. HPCwire. 2014-11-17<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-12-14</span></span>.</cite></span>
</li>
<li id="cite_note-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-19">^</a></b></span> <span class="reference-text"><cite id="CITEREFWantaSmolikKryszynWróblewski2022" class="citation journal cs1">Wanta, Damian; Smolik, Waldemar T.; Kryszyn, Jacek; Wróblewski, Przemysław; Midura, Mateusz (2022). <a rel="nofollow" class="external text" href="https://doi.org/10.3390%2Felectronics11040545">"A Run-Time Reconfiguration Method for an FPGA-Based Electrical Capacitance Tomography System"</a>. <i>Electronics</i>. <b>11</b> (4): 545. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.3390%2Felectronics11040545">10.3390/electronics11040545</a></span>.</cite></span>
</li>
<li id="cite_note-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-20">^</a></b></span> <span class="reference-text"><cite id="CITEREFWiśniewski2009" class="citation book cs1">Wiśniewski, Remigiusz (2009). <i>Synthesis of compositional microprogram control units for programmable devices</i>. Zielona Góra: University of Zielona Góra. p. 153. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-83-7481-293-1</bdi>.</cite></span>
</li>
<li id="cite_note-apple-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-apple_21-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.cs.columbia.edu/~sedwards/apple2fpga/">"Apple2 FPGA"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">6 Sep</span> 2012</span>.</cite></span>
</li>
<li id="cite_note-risc-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-risc_22-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFNiklaus_Wirth" class="citation web cs1">Niklaus Wirth. <a rel="nofollow" class="external text" href="http://www.inf.ethz.ch/personal/wirth/Articles/Miscellaneous/RISC.pdf">"The Design of a RISC Architecture and its Implementation with an FPGA"</a> <span class="cs1-format">(PDF)</span><span class="reference-accessdate">. Retrieved <span class="nowrap">6 Sep</span> 2012</span>.</cite></span>
</li>
<li id="cite_note-soc-23"><span class="mw-cite-backlink"><b><a href="#cite_ref-soc_23-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFJan_Gray" class="citation web cs1">Jan Gray. <a rel="nofollow" class="external text" href="http://www.fpgacpu.org/papers/soc-gr0040-paper.pdf">"Designing a Simple FPGA-Optimized RISC CPU and System-on-a-Chip"</a> <span class="cs1-format">(PDF)</span><span class="reference-accessdate">. Retrieved <span class="nowrap">6 Sep</span> 2012</span>.</cite></span>
</li>
<li id="cite_note-intel_altera-24"><span class="mw-cite-backlink"><b><a href="#cite_ref-intel_altera_24-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://newsroom.intel.com/news-releases/intel-completes-acquisition-of-altera/">"Intel completes acquisition of Altera"</a>. <i>Intel Newsroom</i><span class="reference-accessdate">. Retrieved <span class="nowrap">15 November</span> 2016</span>.</cite></span>
</li>
<li id="cite_note-stratixv_pr-25"><span class="mw-cite-backlink"><b><a href="#cite_ref-stratixv_pr_25-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.altera.com/products/fpga/features/stxv-part-reconfig.html">"Stratix V FPGAs: Ultimate Flexibility Through Partial and Dynamic Reconfiguration"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">15 November</span> 2016</span>.</cite></span>
</li>
<li id="cite_note-arria10_pr-26"><span class="mw-cite-backlink"><b><a href="#cite_ref-arria10_pr_26-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.altera.com/products/design-software/fpga-design/quartus-prime/features.html">"Intel Quartus Prime Software Productivity Tools and Features"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">15 November</span> 2016</span>.</cite></span>
</li>
<li id="cite_note-arria10_pr_docs-27"><span class="mw-cite-backlink"><b><a href="#cite_ref-arria10_pr_docs_27-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.altera.com/en_US/pdfs/literature/hb/qts/qts-qps-5v1.pdf">"Quartus Prime Standard Edition Handbook Volume 1: Design and Synthesis"</a> <span class="cs1-format">(PDF)</span>. Intel. pp. <span class="nowrap">4–</span>1<span class="reference-accessdate">. Retrieved <span class="nowrap">15 November</span> 2016</span>.</cite></span>
</li>
<li id="cite_note-:0-28"><span class="mw-cite-backlink">^ <a href="#cite_ref-:0_28-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:0_28-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-:0_28-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-:0_28-3"><sup><i><b>d</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFEckertMeyerHaaseKlauer2016" class="citation journal cs1">Eckert, Marcel; Meyer, Dominik; Haase, Jan; Klauer, Bernd (2016-11-30). <a rel="nofollow" class="external text" href="https://doi.org/10.1155%2F2016%2F2478907">"Operating System Concepts for Reconfigurable Computing: Review and Survey"</a>. <i>International Journal of Reconfigurable Computing</i>. <b>2016</b>: <span class="nowrap">1–</span>11. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1155%2F2016%2F2478907">10.1155/2016/2478907</a></span>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/1687-7195">1687-7195</a>.</cite> <span typeof="mw:File"></span> This article contains quotations from this source, which is available under the <a rel="nofollow" class="external text" href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International (CC BY 4.0)</a> license.</span>
</li>
</ol></div>
<div class="mw-heading mw-heading2"><h2 id="Further_reading">Further reading</h2></div>
<ul><li>Cardoso, João M. P.; Hübner, Michael (Eds.), <a rel="nofollow" class="external text" href="https://www.springer.com/engineering/circuits+%26+systems/book/978-1-4614-0060-8"><i>Reconfigurable Computing: From FPGAs to Hardware/Software Codesign</i></a>, Springer, 2011.</li>
<li>S. Hauck and A. DeHon, <i>Reconfigurable Computing: The Theory and Practice of FPGA-Based Computing</i>, <a href="Morgan_Kaufmann" class="mw-redirect" title="Morgan Kaufmann">Morgan Kaufmann</a>, 2008.</li>
<li>J. Henkel, S. Parameswaran (editors): Designing Embedded Processors. A Low Power Perspective; Springer Verlag, March 2007</li>
<li>J. Teich (editor) et al.: Reconfigurable Computing Systems. Special Topic Issue of Journal <i>it — Information Technology</i>, Oldenbourg Verlag, Munich. <a rel="nofollow" class="external text" href="https://archive.today/20130101235837/http://www.atypon-link.com/OLD/toc/itit/49/3">Vol. 49(2007) Issue 3</a></li>
<li>T.J. Todman, G.A. Constantinides, S.J.E. Wilton, O. Mencer, W. Luk and P.Y.K. Cheung, "Reconfigurable Computing: Architectures and Design Methods", IEEE Proceedings: Computer & Digital Techniques, Vol. 152, No. 2, March 2005, pp. 193–208.</li>
<li>A. Zomaya (editor): Handbook of Nature-Inspired and Innovative Computing: Integrating Classical Models with Emerging Technologies; Springer Verlag, 2006</li>
<li>J. M. Arnold and D. A. Buell, "VHDL programming on Splash 2," in More FPGAs, Will Moore and Wayne Luk, editors, Abingdon EE & CS Books, Oxford, England, 1994, pp. 182–191. (Proceedings, International Workshop on Field-Programmable Logic, Oxford, 1993.)</li>
<li>J. M. Arnold, D. A. Buell, D. Hoang, D. V. Pryor, N. Shirazi, M. R. Thistle, "Splash 2 and its applications, "Proceedings, International Conference on Computer Design, Cambridge, 1993, pp. 482–486.</li>
<li>D. A. Buell and Kenneth L. Pocek, "Custom computing machines: An introduction," <a href="The_Journal_of_Supercomputing" title="The Journal of Supercomputing">The Journal of Supercomputing</a>, v. 9, 1995, pp. 219–230.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><a rel="nofollow" class="external text" href="https://scale.engin.brown.edu/classes/EN2911XF14/">Lectures on Reconfigurable Computing at Brown University</a></li>
<li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20160306094104/http://vlsi-world.com/content/view/48/47">Introduction to Dynamic Partial Reconfiguration</a></li>
<li><a rel="nofollow" class="external text" href="http://www12.informatik.uni-erlangen.de/research/recobus/">ReCoBus-Builder project for easily implementing complex reconfigurable systems</a></li>
<li><a rel="nofollow" class="external text" href="http://www.dresd.org/">DRESD (Dynamic Reconfigurability in Embedded System Design) research project</a></li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Programmable_logic116" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div id="Programmable_logic116" style="font-size:114%;margin:0 4em"><a href="Programmable_logic_device" title="Programmable logic device">Programmable logic</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Concepts</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Application-specific_integrated_circuit" title="Application-specific integrated circuit">ASIC</a></li>
<li><a href="System_on_a_chip" title="System on a chip">SoC</a></li>
<li><a href="Field-programmable_gate_array" title="Field-programmable gate array">FPGA</a>
<ul><li><a href="Logic_block" title="Logic block">Logic block</a></li></ul></li>
<li><a href="Complex_programmable_logic_device" title="Complex programmable logic device">CPLD</a></li>
<li><a href="Programmable_logic_device#EPLDs" title="Programmable logic device">EPLD</a></li>
<li><a href="Programmable_logic_array" title="Programmable logic array">PLA</a></li>
<li><a href="Programmable_Array_Logic" title="Programmable Array Logic">PAL</a></li>
<li><a href="Generic_array_logic" class="mw-redirect" title="Generic array logic">GAL</a></li>
<li><a href="Cypress_PSoC" title="Cypress PSoC">PSoC</a></li>
<li>
<ul><li><a href="Xputer" title="Xputer">Xputer</a></li></ul></li>
<li><a href="Soft_microprocessor" title="Soft microprocessor">Soft microprocessor</a></li>
<li><a href="Circuit_underutilization" title="Circuit underutilization">Circuit underutilization</a></li>
<li><a href="High-level_synthesis" title="High-level synthesis">High-level synthesis</a></li>
<li><a href="Hardware_acceleration" title="Hardware acceleration">Hardware acceleration</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Hardware_description_language" title="Hardware description language">Languages</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Verilog" title="Verilog">Verilog</a>
<ul><li><a href="Verilog-A" title="Verilog-A">A</a></li>
<li><a href="Verilog-AMS" title="Verilog-AMS">AMS</a></li></ul></li>
<li><a href="VHDL" title="VHDL">VHDL</a>
<ul><li><a href="VHDL-AMS" title="VHDL-AMS">AMS</a></li>
<li><a href="VHDL-VITAL" class="mw-redirect" title="VHDL-VITAL">VITAL</a></li></ul></li>
<li><a href="SystemVerilog" title="SystemVerilog">SystemVerilog</a>
<ul><li><a href="SystemVerilog_DPI" title="SystemVerilog DPI">DPI</a></li></ul></li>
<li><a href="SystemC" title="SystemC">SystemC</a></li>
<li><a href="Altera_Hardware_Description_Language" title="Altera Hardware Description Language">AHDL</a></li>
<li><a href="Handel-C" title="Handel-C">Handel-C</a></li>
<li><a href="Lola_(computing)" title="Lola (computing)">Lola</a></li>
<li><a href="Property_Specification_Language" title="Property Specification Language">PSL</a></li>
<li><a href="Unified_Power_Format" title="Unified Power Format">UPF</a></li>
<li><a href="PALASM" title="PALASM">PALASM</a></li>
<li><a href="Advanced_Boolean_Expression_Language" title="Advanced Boolean Expression Language">ABEL</a></li>
<li><a href="Programmable_Array_Logic#CUPL" title="Programmable Array Logic">CUPL</a></li>
<li><a href="C_to_HDL" title="C to HDL">C to HDL</a></li>
<li><a href="Flow_to_HDL" title="Flow to HDL">Flow to HDL</a></li>
<li><a href="MyHDL" title="MyHDL">MyHDL</a></li>
<li><a href="ELLA_(programming_language)" title="ELLA (programming language)">ELLA</a></li>
<li><a href="Chisel_(programming_language)" title="Chisel (programming language)">Chisel</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Companies</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Accellera" title="Accellera">Accellera</a></li>
<li><a href="Achronix" title="Achronix">Achronix</a></li>
<li><a href="AMD" title="AMD">AMD</a></li>
<li><a href="Aldec" title="Aldec">Aldec</a></li>
<li><a href="Arm_Holdings" title="Arm Holdings">Arm</a></li>
<li><a href="Cadence_Design_Systems" title="Cadence Design Systems">Cadence</a></li>
<li><a href="Infineon_Technologies" title="Infineon Technologies">Infineon</a></li>
<li><a href="Intel" title="Intel">Intel</a></li>
<li><a href="Lattice_Semiconductor" title="Lattice Semiconductor">Lattice</a></li>
<li><a href="Microchip_Technology" title="Microchip Technology">Microchip Technology</a></li>
<li><a href="NXP_Semiconductors" title="NXP Semiconductors">NXP</a></li>
<li><a href="Siemens" title="Siemens">Siemens</a></li>
<li><a href="Synopsys" title="Synopsys">Synopsys</a></li>
<li><a href="Texas_Instruments" title="Texas Instruments">Texas Instruments</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Products</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Hardware</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="ICE_(FPGA)" title="ICE (FPGA)">iCE</a></li>
<li><a href="Stratix" title="Stratix">Stratix</a></li>
<li><a href="Virtex_(FPGA)" title="Virtex (FPGA)">Virtex</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Software</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Intel_Quartus_Prime" class="mw-redirect" title="Intel Quartus Prime">Intel Quartus Prime</a></li>
<li><a href="Xilinx_ISE" title="Xilinx ISE">Xilinx ISE</a></li>
<li><a href="Vivado" title="Vivado">Vivado</a></li>
<li><a href="ModelSim" title="ModelSim">ModelSim</a></li>
<li><a href="Verilog-to-Routing" title="Verilog-to-Routing">VTR</a></li>
<li><a href="List_of_HDL_simulators" title="List of HDL simulators">Simulators</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Intellectual_property" title="Intellectual property">Intellectual<br>property</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Proprietary_hardware" title="Proprietary hardware">Proprietary</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="ARC_(processor)" title="ARC (processor)">ARC</a></li>
<li><a href="ARM_Cortex-M" title="ARM Cortex-M">ARM Cortex-M</a></li>
<li><a href="LEON" title="LEON">LEON</a></li>
<li><a href="LatticeMico8" title="LatticeMico8">LatticeMico8</a></li>
<li><a href="MicroBlaze" title="MicroBlaze">MicroBlaze</a></li>
<li><a href="PicoBlaze" title="PicoBlaze">PicoBlaze</a></li>
<li><a href="Nios_embedded_processor" title="Nios embedded processor">Nios</a></li>
<li><a href="Nios_II" title="Nios II">Nios II</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Open-source_hardware" title="Open-source hardware">Open-source</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Java_Optimized_Processor" title="Java Optimized Processor">JOP</a></li>
<li><a href="LatticeMico32" title="LatticeMico32">LatticeMico32</a></li>
<li><a href="OpenCores" title="OpenCores">OpenCores</a></li>
<li><a href="OpenRISC" title="OpenRISC">OpenRISC</a>
<ul><li><a href="OpenRISC_1200" title="OpenRISC 1200">1200</a></li></ul></li>
<li><a href="Power_ISA" title="Power ISA">Power ISA</a>
<ul><li><a href="Libre-SOC" title="Libre-SOC">Libre-SOC</a></li>
<li><a href="OpenPOWER_Microwatt" title="OpenPOWER Microwatt">Microwatt</a></li></ul></li>
<li><a href="RISC-V" title="RISC-V">RISC-V</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr></tbody></table><div></div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-08-04" href="https://en.wikipedia.org/wiki/?title=Reconfigurable_computing&oldid=1304224420">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>